﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using AutoMapper;
using DDD_AOP_WCF.Domain;
using DDD_AOP_WCF.Domain.DTO;
using DDD_AOP_WCF.Domain.Products;
using DDD_AOP_WCF.Service.Implements;
using DDD_AOP_WCF.ServiceContracts;
using Infrastructure;
using Project.Unity;

namespace DDD_AOP_WCF.Service
{
    // 注意: 使用“重构”菜单上的“重命名”命令，可以同时更改代码、svc 和配置文件中的类名“ProductService”。
    // 注意: 为了启动 WCF 测试客户端以测试此服务，请在解决方案资源管理器中选择 ProductService.svc 或 ProductService.svc.cs，然后开始调试。
    public class ProductService : ServiceBase, IProductService
    {

        //通过ServiceLocator从IoC容器中获得对象
        IProductService _productService = ServiceLocator.Instance.GetService<IProductService>();
        #region IProductService 成员

        public ProductDTO GetProductByID(int id)
        {
            return _productService.GetProductByID(id);
        }

        public bool CreateProduct(ProductDTO productDTO)
        {
            return _productService.CreateProduct(productDTO);
        }

        public List<ProductDTO> GetProduct()
        {
            return _productService.GetProduct();
        }

        public bool ModifyProduct(ProductDTO productDTO)
        {
            return _productService.ModifyProduct(productDTO);
        }

        public List<ProductDTO> GetProductByName(string productName)
        {
            return _productService.GetProductByName(productName);
        }

        public bool DelProduct(int id)
        {
            return _productService.DelProduct(id);
        }

        #endregion
    }
}
